/*
 * Description: app filter process manager
 */
#ifndef APPFILTER_MANAGER_H
#define APPFILTER_MANAGER_H

#include <atomic>
#include <windows.h>

namespace GUEST {
class AppFilterManager {

public:
    void Init();

    void Deinit();

    void Start();

    void Stop();

    void StopAll();

private:
    bool IsReady();
    bool GetAgentProcessPID(DWORD &pid);
    std::atomic<bool> isWatched{false};
    DWORD watchedSession = 0;
};

#define APP_FILTER_MANAGER SingletonNew<GUEST::AppFilterManager>::GetInstance()
}  // namespace GUEST
#endif